iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
Python

從概念到應用:Python實戰開發學習之旅系列 第 29

[Day28] Python專案 - 人工智能的開端與Python的共舞(1) 機器學習(預測股票、分類男女生)

  • 分享至 

  • xImage
  •  

目標

https://ithelp.ithome.com.tw/upload/images/20241013/20121052JVXkGORPXJ.png

人工智能的威力
相信大家在近期都看到它們在各大領域(藝術、醫學、理工、法律、文學)大殺四方
/images/emoticon/emoticon29.gif

今天要探討的主題主要是
為什麼人工智能跟學習Python息息相關?
別的語言就不行嗎?

人工智能到底是什麼?機器學習?神經網路?
這麼多新名詞哪記得了/images/emoticon/emoticon06.gif

今日目標:

  1. 人工智能為什選擇Python
  2. 人工智能的領域
  3. 機器學習的實作初入門

1.人工智能為什選擇Python

看到這個標題一定有人想
這個不是廢話嗎?

大家都叫我們學習AI要先學Python
不過大家有沒有想過為什麼要先學習Python?

與Python競爭的夥伴

這個時代很多厲害高效能的語言 (C++/Go/Rust)
一定要非選擇Python不可

其實這些事情沒有絕對
也有其他語言的,如下圖
https://ithelp.ithome.com.tw/upload/images/20241013/20121052NSQoWSygmm.png

其實開發者也沒有限制要使用哪個語言
也可以選擇資料科學很熱門的R或是網頁開發者也可以選擇Tensorflow.js(實際上是去call底層API)

所以並不是學習AI就一定要學Python,而是因為Python瑞士刀剛好受到各方大老的喜愛
也就造就了許多的科學函式庫還有機器學習套件

至於它的優勢是什麼往們繼續往下探討~

Python變成熱門機器學習的原因

透過表格我們可以精簡以下的優勢

python語言優勢表

優勢 說明
簡單易學、可讀性高 Python 語法簡潔,讓開發者專注於解決問題而非語言細節。
豐富的庫與工具 擁有強大的 AI 和機器學習庫,如 TensorFlow、PyTorch、Scikit-learn 等。
跨平台支持與靈活性 支持多操作系統,並且易於與其他語言和技術整合。
龐大的社群與資源 活躍的開發者社群,提供大量教程、範例與技術支持。
與數據科學的高度契合 強大的數據處理工具如 Pandas 和 NumPy 使數據科學與機器學習相輔相成。
豐富的可視化工具 Matplotlib、Seaborn 等庫幫助展示數據和模型結果,讓 AI 項目更具直觀性。
開源文化與社群支持 許多流行的 AI 框架是開源的,促進創新和知識共享。
快速原型設計與實驗性質 適合進行快速原型設計,能迅速測試算法並迭代模型。

大公司的選擇˙

其中也有不少大公司使用Python的機器學習來應用在公司的企業邏輯

應用場景 說明
推薦系統 用於電商和流媒體平台,根據用戶行為進行個性化推薦。
自然語言處理(NLP) 用於語音助手、語音識別、文本分析和語言翻譯。
計算機視覺 用於自動駕駛、醫療影像分析、安防監控等圖像處理任務。
金融風險管理 用於金融市場的風險預測、自動交易系統等。
醫療健康 應用於疾病診斷、基因分析等,幫助精確醫療診斷。

其實小弟認為~Python這麼火紅也許跟Google也有占很大的因素
當代紅片全球的幾個熱門框架都可以透過Python來操作呼叫背後的API進行邏輯運算

總結來說,Python 的優勢在於其語法簡潔、庫豐富、應用靈活,並且擁有龐大的開源社群支持。這些特點讓它成為 AI 和機器學習領域中的領導語言,無論是快速原型開發還是生產級別的部署,Python 都能勝任。

這也是為什麼前面我會推薦使用Fast API?
因為我希望Python處理資料或是人工智能運算的這項microservice
可以專注處理邏輯而非學習一堆框架語法

也就是我在FastAPI章節說的兼具性能、RESTful API、非同步運行、社群支持 CP值高高XDD
/images/emoticon/emoticon01.gif

2 人工智能的領域

https://ithelp.ithome.com.tw/upload/images/20241013/201210520wjsmmDNza.png

人工智能(Artificial Intelligence,簡稱 AI)是指由人類創造的系統或機器,能夠模擬和執行通常需要人類智慧的任務。這些任務包括學習推理問題解決理解自然語言識別圖像和聲音等。人工智能的目標是使機器能夠像人類一樣思考和行動,並在某些情況下超越人類的能力

從這張圖我們可以看到這些專有名詞的集合

  • 最大的外層就是所謂的人工智能AI
  • 下面一層的就是所謂的機器學習
  • 其中機器學習又可分(1.監督學習2.非監督學習3.強化學習)
  • 最後就是模仿人類神經元的深度學習又稱神經網路

學習方向

https://ithelp.ithome.com.tw/upload/images/20241013/20121052UkAPmSriNL.png

既然我們是電腦工程師
我們的目標當然就是直接探討機器學習深度學習

理論會在這個篇章說明
實作會以機器學習為主,至於深度學習會在明天壓軸登場~!!

/images/emoticon/emoticon01.gif

1. 機器學習

監督學習、非監督學習與強化學習的差別與應用場景

1. 監督學習(Supervised Learning)

定義
監督學習是基於已標記數據來進行模型訓練的學習方法。在這種方法中,模型學習到輸入數據和目標標籤之間的對應關係,並嘗試對未來的輸入數據做出預測。

特點

  • 需要大量的已標記數據作為訓練集。
  • 目標是使模型能夠對新輸入進行準確的預測。

應用場景

  • 分類問題:如郵件垃圾分類、圖片中的物體分類(貓、狗等)。
  • 回歸問題:如房價預測、股票價格預測。

常用算法

  • 線性回歸
  • 支持向量機(SVM)
  • 隨機森林
  • 神經網絡

2. 非監督學習(Unsupervised Learning)

定義
非監督學習是使用無標籤數據進行訓練的學習方法。目的是從數據中發現隱含的結構或模式,並對數據進行聚類或降維處理。

特點

  • 不需要已標記的數據,僅使用無標籤數據進行學習。
  • 主要目的是發現數據的潛在結構或模式。

應用場景

  • 聚類:將客戶分組以進行市場細分。
  • 降維:如主成分分析(PCA)用於數據壓縮或可視化。
  • 異常檢測:用於發現異常交易或網絡入侵。

常用算法

  • K-means 聚類
  • 主成分分析(PCA)
  • 自編碼器(Autoencoder)

3. 強化學習(Reinforcement Learning)

定義
強化學習是基於智能體在環境中的行為學習。智能體通過與環境互動,接收到來自環境的反饋(獎勵或懲罰),從而學習最佳策略以最大化長期回報。

特點

  • 通過試錯來學習,智能體不斷從環境中獲取反饋。
  • 目標是學習一個策略,使得智能體能在不同情況下做出最優決策

應用場景

  • 遊戲 AI:如 AlphaGo 通過強化學習擊敗人類玩家。
  • 自動駕駛:通過學習如何在動態環境中做出駕駛決策。
  • 機器人控制:如機器人手臂學習如何抓取物體或完成任務。

常用算法

  • Q-learning
  • 深度 Q 網絡(DQN)
  • 策略梯度方法

總結

學習方法 定義 應用場景
監督學習 基於已標記數據進行模型訓練,以學習輸入和標籤之間的映射關係。 圖像分類、垃圾郵件檢測、價格預測等。
非監督學習 使用無標籤數據,目的是從數據中發現結構或模式。 聚類分析、異常檢測、數據降維等。
強化學習 基於智能體與環境的互動學習,通過獎勵和懲罰來學習最佳策略。 遊戲 AI、自動駕駛、機器人控制等。

2. 深度學習跟機器學習的結合

其實深度學習就是透過機器學習的方法做整合應用,並且透過模擬人類神經把各種方法混和應用。

深度學習(Deep Learning)可以看作是機器學習的子集,並且它可以應用於監督學習非監督學習強化學習這三種方法中。深度學習的核心是使用多層神經網絡來自動學習特徵,並在各種學習任務中獲得卓越的表現。

以下是深度學習與這三種學習方法的關係及其應用:

1. 深度學習與監督學習

  • 如何結合:

    • 在監督學習中,深度學習經常使用深度神經網絡(DNN)來學習輸入數據標籤之間的複雜關係。這是最常見的應用場景之一,因為標記數據的存在使得神經網絡可以進行精確的預測。
    • 神經網絡層級可以從數據中自動學習多層次的特徵,不再依賴於人工提取特徵。這在圖像、語音識別等問題上有著極大的優勢。
  • 常見應用:

    • 圖像識別:如卷積神經網絡(CNN)在圖片分類中的應用(如 ImageNet 比賽)。
    • 語音識別:如 Google Assistant 和 Amazon Alexa 使用深度學習來理解和處理語音。
    • 自然語言處理 (NLP):如使用長短期記憶網絡(LSTM)或變換器(Transformer)來進行文本分類、機器翻譯和文本生成(如 GPT)。

2. 深度學習與非監督學習

  • 如何結合:

    • 雖然深度學習更多地應用於監督學習,但它也可以在非監督學習中發揮作用,特別是用於學習數據的內在結構。例如,自編碼器(Autoencoder) 是一種非監督的神經網絡,用於數據降維或特徵學習,它可以幫助模型從無標籤的數據中學習到數據的關鍵特徵。
    • 另一個常見的非監督學習深度學習模型是生成對抗網絡(GAN),用於生成新數據(如圖像生成)或進行數據增強。
  • 常見應用:

    • 特徵學習與降維:自編碼器可以用來對數據進行降維處理,特別是在高維數據中(如圖像、文本)。
    • 數據生成:GANs 用於生成逼真的圖像、視頻,甚至是文本。它在藝術創作、遊戲開發和醫療圖像生成等領域有很大的潛力。
    • 異常檢測:自編碼器可以學習數據的正常模式,當遇到異常數據時,它們無法有效地重建數據,因此異常可以被檢測出來。

3. 深度學習與強化學習

  • 如何結合:

    • 深度學習與強化學習結合產生了深度強化學習(Deep Reinforcement Learning,DRL),它使用深度神經網絡來學習從環境中獲取高效的決策策略。具體來說,深度神經網絡用於表示和學習價值函數或策略函數,從而幫助智能體在不同情況下做出最佳決策。
    • 這種方法在需要處理高維感知數據(如圖像、遊戲畫面)並進行動作選擇的場景中特別有效。
  • 常見應用:

    • 遊戲 AI:像 AlphaGo 和 AlphaStar 這樣的遊戲 AI 使用深度強化學習來學習如何在複雜的棋盤遊戲或電子遊戲環境中打敗人類玩家。
    • 自動駕駛:深度強化學習模型用於學習如何在不斷變化的交通環境中做出正確的駕駛決策。
    • 機器人控制:通過強化學習,機器人可以學習如何更好地完成各種任務,如物體抓取、行走等。

深度學習與傳統方法的比較

方法 深度學習的應用 傳統方法的應用
監督學習 使用深度神經網絡來自動學習多層特徵,尤其在高維數據如圖像、語音中效果優異。 傳統方法如線性回歸、支持向量機,依賴於手動特徵提取。
非監督學習 深度學習可以通過自編碼器、GAN 等從數據中學習潛在特徵或生成新數據。 傳統方法如 K-means 聚類、主成分分析。
強化學習 深度強化學習使用神經網絡處理高維感知數據,幫助智能體在複雜環境中學習決策。 傳統強化學習方法如 Q-learning,無法有效處理高維數據。

總結

深度學習在這三種機器學習方法中都扮演了重要角色,幫助解決了傳統方法無法輕易處理的問題,特別是在處理高維數據(如圖像、視頻、語音)方面。

  • 深度學習與監督學習結合使得模型在分類和預測任務上表現卓越
  • 與非監督學習結合能從數據中自動提取特徵和生成新數據
  • 與強化學習結合則使得智能體能夠在複雜的動態環境中做出更智能的決策。

3. 機器學習的實作初入門

本實作會以機器學習的監督跟非監督學習個挑一種情境來帶大家實作/images/emoticon/emoticon01.gif

3.1 監督學習(線型回歸)

事前準備

之所以選擇線性回歸這個方式
是最貼近我們生活跟數學最好理解的方式

今天的需求很簡單
我們可以透過前面學到的爬蟲抓取股票把TSM美股近33天的股價列出來(最近有爬一些美股)
/images/emoticon/emoticon25.gif
然後預測第34天或自定義天數來看股價式多少
(這邊是學習,不構成投資建議喔~!!)/images/emoticon/emoticon17.gif

如果忘記爬蟲可以複習一下
Day21爬蟲章節

所以我們的時序圖大概是長這樣
https://ithelp.ithome.com.tw/upload/images/20241013/2012105284yQ9tZaEJ.png

因為今天會把圖畫出來以及使用到numpy功能所以請大家先安裝

pip install numpy matplotlib

TSM stock資料
我已經整理成陣列格式了
大家可以複製過去用

closing_prices = [
    190.81, 185.78, 187.14, 186.05, 188.17, 185.86, 184.50, 182.00, 180.50, 179.00,
    178.00, 177.50, 176.00, 175.00, 174.50, 173.00, 172.00, 171.50, 170.00, 169.00,
    168.00, 167.50, 166.00, 165.00, 164.00, 163.50, 162.00, 161.00, 160.00, 159.00,
    158.00, 157.00, 156.00
]

第一步驟 使用Python 先把點標在座標上

import numpy as np
import matplotlib.pyplot as plt

# 股價資料(最新日期在最前的順序)
closing_prices = [
    190.81, 185.78, 187.14, 186.05, 188.17, 185.86, 184.50, 182.00, 180.50, 179.00,
    178.00, 177.50, 176.00, 175.00, 174.50, 173.00, 172.00, 171.50, 170.00, 169.00,
    168.00, 167.50, 166.00, 165.00, 164.00, 163.50, 162.00, 161.00, 160.00, 159.00,
    158.00, 157.00, 156.00
]

# 反轉數據,讓最早日期在前
closing_prices.reverse()

# 設置 X 軸的日期索引 (1 到 33)
days = np.arange(1, len(closing_prices) + 1)

# 畫股價點
plt.scatter(days, closing_prices, label='Stock Prices', color='blue')
plt.xlabel('Days')
plt.ylabel('Closing Prices')
plt.title('Stock Prices Over the Last 33 Days')

# 將股價標示在圖上
for i, price in enumerate(closing_prices):
    plt.text(days[i], closing_prices[i], f'{price:.2f}', fontsize=8)

plt.show()

如果執行沒意外應該可以看到這張圖
https://ithelp.ithome.com.tw/upload/images/20241013/20121052KuGFlcchvk.png

tips 程式說明

  1. 這邊因為我是抓最近的資料放在excel不小心排序了,
  2. 優先要先讓他反轉排序可以用python的.reverse()

第二步驟 算出線性方程式

再給程式碼前
相信各位小夥伴已經大概知道怎麼做了/images/emoticon/emoticon39.gif

沒錯! 其實這就很像是國中學到的數學公式Y = ax + b

y= 股價
a = 斜率
x = 天數
b = 截距

那我們線性回歸的方法是這樣算的
線性回歸的方程式是通過統計學中的**最小二乘法(Least Squares Method)**來計算的,目的是找到一條最佳的直線,使得所有點到這條線的垂直距離之和最小。這個最佳直線的方程式通常表示為:

y = mx + b

最小二乘法的運算方法有興趣可以去參考相關數學書籍
這邊不做推導XDD
我們可以透過好用的python library來做運算

Python 中的實現方式
在 Python 中,我們可以使用 NumPy 的 polyfit() 函數來自動執行這些計算。polyfit(x, y, 1) 使用了上述的最小二乘法來擬合一條一階(即線性)的方程式,並返回斜率 𝑚 和截距 𝑏。

m, b = np.polyfit(days, closing_prices, 1)

numpy.polyfit() 函數中,第三個參數是指定要擬合的多項式的階數(degree)。這個參數決定了擬合曲線的複雜度和形狀:

當設置為 1 時,表示進行 一階線性回歸,即擬合一條直線y = mx + b
設置為 2 時,表示進行 二階多項式回歸,即擬拋物線y = ax^2+ bx + c

計算我們的預測函數

import numpy as np
import matplotlib.pyplot as plt

# 股價資料(最新日期在最前的順序)
closing_prices = [
    190.81, 185.78, 187.14, 186.05, 188.17, 185.86, 184.50, 182.00, 180.50, 179.00,
    178.00, 177.50, 176.00, 175.00, 174.50, 173.00, 172.00, 171.50, 170.00, 169.00,
    168.00, 167.50, 166.00, 165.00, 164.00, 163.50, 162.00, 161.00, 160.00, 159.00,
    158.00, 157.00, 156.00
]

# 反轉數據,讓最早日期在前
closing_prices.reverse()

# 設置 X 軸的日期索引 (1 到 33)
days = np.arange(1, len(closing_prices) + 1)

# 使用線性回歸計算 y = mx + b 的係數
m, b = np.polyfit(days, closing_prices, 1)

# 畫股價點和趨勢線
plt.scatter(days, closing_prices, label='Stock Prices', color='blue')
plt.plot(days, m * days + b, label='Linear Regression', color='orange')  # 畫出線性回歸線
plt.xlabel('Days')
plt.ylabel('Closing Prices')
plt.title('Stock Prices with Linear Regression')

# 顯示線性方程式
plt.text(5, max(closing_prices), f'y = {m:.2f}x + {b:.2f}', fontsize=12, color='red')

plt.legend()
plt.show()

https://ithelp.ithome.com.tw/upload/images/20241013/20121052GcrIp84Ylx.png

我們可以得到這是我們的回歸方程式y = 1.06x +154.55

第三步驟 計算後續天數價格

import numpy as np

# 股價資料(最新日期在最前的順序)
closing_prices = [
    190.81, 185.78, 187.14, 186.05, 188.17, 185.86, 184.50, 182.00, 180.50, 179.00,
    178.00, 177.50, 176.00, 175.00, 174.50, 173.00, 172.00, 171.50, 170.00, 169.00,
    168.00, 167.50, 166.00, 165.00, 164.00, 163.50, 162.00, 161.00, 160.00, 159.00,
    158.00, 157.00, 156.00
]

# 反轉數據,讓最早日期在前
closing_prices.reverse()

# 設置 X 軸的日期索引 (1 到 33)
days = np.arange(1, len(closing_prices) + 1)

# 使用線性回歸計算 y = mx + b 的係數
m, b = np.polyfit(days, closing_prices, 1)

# 預測下一天的股價
next_day = len(closing_prices) + 1
predicted_price = m * next_day + b

print(f"預測第 {next_day} 天的股價: {predicted_price:.2f}")

大家可以自行操作
next_day = len(closing_prices) + 1
修改後面的+1即可,

+1就是第34天

預測第 34 天的股價: 190.50

+0就是第34天

預測第 43 天的股價: 200.02

結論

這樣我們就學會最簡單的預測模型了
但是大家也知道股票不是這麼簡單的
有可能會因為外資、國家政策、貸款、通膨、公司策略等因素影響

這種就可以透過深度學習調整權重去配合自己的股票預測模型喔!!

3.2 非監督學習(KNN)

非監督學習的數據處理
不需要標籤:非監督學習的主要特點是使用未標記的數據進行訓練。這意味著數據集中的樣本不需要事先進行標記(例如,沒有性別、類別等標籤)。

數據分割:儘管非監督學習不需要標籤,但在實踐中,通常仍會將數據集分成訓練集驗證集(或測試集),以評估模型的性能。這樣的分割可以幫助確保模型的泛化能力,並防止過擬合。具體分割比例可根據需要而定,常見的比例是70%訓練集30%測試集

聚類和降維:非監督學習算法,如 K-means 聚類、層次聚類、主成分分析(PCA)等,通常用來發現數據中的結構、模式或群組。這些算法可以幫助識別相似性,並將數據分組,而不需要事先的標籤。

需要使用所需安裝的套件

pip install scikit-learn

我們的目標是透過KNN方式分類男生還是女生
所以要先安裝scikit來使用這種算法使用

KNN(K 最近鄰算法)簡介

KNN(K-Nearest Neighbors)是一種簡單且有效的機器學習算法,常用於分類和回歸任務。以下是 KNN 的基本概念和作法:

  • 工作原理:KNN 基於一個簡單的原則:如果一個樣本的 K 個最近鄰樣本中,大多數樣本屬於某個類別,那麼這個樣本也將被分為該類別。
  • 距離度量:KNN 通常使用歐氏距離(Euclidean distance)來計算樣本之間的距離,但也可以使用其他距離度量(如曼哈頓距離、餘弦相似度等)。

KNN 的作法

  1. 選擇 K 值:選擇一個整數 K,這是用來決定考慮多少個最近鄰樣本。K 的選擇會影響模型的性能。

    • 如果 K 值太小,模型可能會對噪聲敏感。
    • 如果 K 值太大,模型可能會過於簡化,失去對數據的辨別能力。
  2. 計算距離:對於要進行分類或預測的樣本,計算它與訓練集中的每個樣本之間的距離。

  3. 找出 K 個最近鄰:根據計算的距離,找出 K 個最近的樣本。

  4. 進行分類或預測

    • 分類:將 K 個最近鄰中出現頻率最高的類別標籤作為預測結果。
    • 回歸:計算 K 個最近鄰的平均值作為預測結果。
  5. 評估模型:使用交叉驗證或其他技術來評估模型的準確性,並根據需要調整 K 值或其他參數。

KNN 的優缺點

  • 優點

    • 簡單易懂,實現容易。
    • 不需要訓練模型,直接使用訓練數據進行分類或預測。
  • 缺點

    • 計算量大,尤其在大數據集上,查找最近鄰的計算效率較低。
    • 對於特徵的縮放敏感,通常需要對數據進行標準化或正規化處理。

KNN 是一種基於實例的學習方法,適用於很多實際應用場景,如手寫數字識別、推薦系統和醫療診斷等。

簡單說就是坐標系中最接近距離的做法

非監督學習確實可以將數據分為訓練集測試集,但這樣的分割不涉及標籤。其主要目的是評估模型的性能或發現數據中的潛在模式。

資料集

編號 性別 身高 (cm) 體重 (kg)
1 男生 180 75
2 男生 175 78
3 男生 190 85
4 男生 178 80
5 男生 185 90
6 女生 160 55
7 女生 158 52
8 女生 165 60
9 女生 170 65
10 女生 162 58

預測這位是男生還是女生[172, 70]

程式碼實作

import numpy as np
from sklearn.neighbors import KNeighborsClassifier

# 男生與女生的數據(身高, 體重)
X = np.array([
    [180, 75],  # 男生
    [175, 78],  # 男生
    [190, 85],  # 男生
    [178, 80],  # 男生
    [185, 90],  # 男生
    [160, 55],  # 女生
    [158, 52],  # 女生
    [165, 60],  # 女生
    [170, 65],  # 女生
    [162, 58],  # 女生
])

# 對應的標籤(1 = 男生, 0 = 女生)
y = np.array([1, 1, 1, 1, 1, 0, 0, 0, 0, 0])

# 要分類的第六筆資料(未知身高, 體重)
new_data = np.array([[172, 70]])

# 建立 KNN 模型,K=3
knn = KNeighborsClassifier(n_neighbors=3)

# 訓練模型
knn.fit(X, y)

# 預測新數據的性別
prediction = knn.predict(new_data)

# 輸出預測結果
if prediction == 1:
    print("預測結果: 男生")
else:
    print("預測結果: 女生")


我們得到的結果應該是

預測結果: 男生

https://ithelp.ithome.com.tw/upload/images/20241013/20121052cVMhmZyaLv.png

如果我們把範圍長出來
可以呈現成這樣的圖

https://ithelp.ithome.com.tw/upload/images/20241013/20121052DuTArJLgBs.png

總結

今天踏入了機器學習的大門
這個路途非常由遠而且沒有盡頭

只能依照個人的需求來選擇適合的模型方式
找出最想要的資料結果

另外有幾點可以給大家參考

注意事項

注意事項 說明
數據質量 確保數據準確、完整且無缺失值,因為數據質量影響模型表現。
數據量 大量的數據可以幫助模型更好地學習,但數據過少可能導致過擬合。
特徵選擇 選擇合適的特徵以提升模型的預測能力,去除不相關或冗餘的特徵。
超參數調整 使用交叉驗證和網格搜索等技術來優化模型的超參數。
過擬合與欠擬合 監控模型表現,避免過擬合(模型在訓練集上表現良好但在測試集上表現差)或欠擬合(模型無法捕捉數據中的趨勢)。
模型評估 使用多種評估指標(如準確率、精確度、召回率等)來全面評估模型性能。
持續學習 機器學習是個持續進步的領域,要保持對新技術和最佳實踐的學習。

學習網站參考

網站 說明
Coursera 提供大量的機器學習和數據科學課程,包括知名大學的專業證書。
edX 免費和付費的高等教育課程,涵蓋機器學習、深度學習等主題。
Kaggle 提供機器學習競賽、數據集和學習資源,是一個活躍的數據科學社區。
Fast.ai 提供免費的深度學習課程,注重實踐與應用。
Towards Data Science 包含大量機器學習和數據科學的文章和教程,適合各種水平的學習者。
Machine Learning Mastery 提供詳細的機器學習指南、教程和實用範例,幫助學習者理解基本概念。
deeplearning AI大師吳恩達教授提供的網站,新手特別推薦可以從這邊開始學習

另外在台灣也有幾名知名教授的youtube課程可以學習: 李宏毅教授、陳縕儂教授
都是非常厲害的老師喔!!/images/emoticon/emoticon34.gif


上一篇
[Day27] Python專案 - PowerBI複習&自動化&網頁自動登入 (PowerBI 、windwos工作排程、PyAutoGUI)
下一篇
[Day29] Python專案 - 人工智能的開端與Python的共舞(2) 深度學習(excel學神經網路、預測妹子的喜好)
系列文
從概念到應用:Python實戰開發學習之旅31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言